{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow_datasets as tfds\n",
    "import matplotlib as plt\n",
    "import matplotlib.pyplot as plt\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import cv2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 导入数据 处理数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#训练集\n",
    "train_fasion_mnist = tfds.as_numpy(tfds.load(\"fashion_mnist\",split=\"train\",data_dir=\"./\",download=False,batch_size=-1))\n",
    "x_train , y_train = train_fasion_mnist[\"image\"],train_fasion_mnist[\"label\"]\n",
    "#测试集\n",
    "test_fasion_mnist = tfds.as_numpy(tfds.load(\"fashion_mnist\",split=\"test\",data_dir=\"./\",download=False,batch_size=-1))\n",
    "x_test, y_test = test_fasion_mnist[\"image\"],test_fasion_mnist[\"label\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Samples: 60000\n",
      "Test Samples: 60000\n"
     ]
    }
   ],
   "source": [
    "print(\"Train Samples:\",len(x_train))\n",
    "print(\"Test Samples:\",len(y_train))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1 = x_train.copy()\n",
    "x2 = x_test.copy()\n",
    "y1 = y_train.copy()\n",
    "y2 = y_test.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28, 1) (10000, 28, 28, 1) (60000,) (10000,)\n"
     ]
    }
   ],
   "source": [
    "print(x1.shape,x2.shape,y1.shape,y2.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "x1 = np.squeeze(x1,axis=-1)\n",
    "x2= np.squeeze(x2,axis=-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28) (10000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "print(x1.shape,x2.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 绘制一张随机样本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "arr = np.random.randint(1,60000)\n",
    "plt.imshow(x1[arr])\n",
    "plt.colorbar()\n",
    "plt.grid(False)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 参数设置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "fashion_classes = {0:'T恤',1:'裤子',2:'套衫',3:'裙子',4:'外套',5:'凉鞋',6:'汗衫',7:'运动鞋',8:'包',9:'踝靴'}\n",
    "mnist_classes = [i for i in range(10)]\n",
    "num_classes = 10\n",
    "batch_size = 500\n",
    "num_epochs = 80\n",
    "iterations = 3\n",
    "nb_augmentation = 2\n",
    "img_width = 28\n",
    "img_height = 28\n",
    "channels = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "#x1 = x1/255.0\n",
    "#x2 = x2/255.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "plt.rcParams['font.sans-serif']='SimHei'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AcCBBx7oZXtaNtum+QR4G37dkiH9LYn1/Yj5eLAfBxCGVMf6FQh9s/idWhs4nyjPz9jP7dChg5e7desW3OPxMGLECC9bH6DmCBsuB7YvuJ38flgGQr82WwcffZMKdbfjvR4757hN7733npftCfU8r3784x83WLdYGx77qXfPWL+vq6++2su//e1vvTxkyJBofb169fKyPU6FsUeZxLDj6/HHH/fyO++84+UZM2YE5az/UTVh1z6ee5w2BAD+8Ic/eJn9aI466qig3Hnnnefl7373u17m32oAWLJkiZfPPvvsaBvZr/CZZ57xMvv4AuG+4J///Gdwj3/ve/bs6WW7L7DpR/JQm7+yQgghhBAJtAESQgghROEoiwmM1apW1cXmAVZp24zRrM6zqlhWn+c1LzTFpGTV9PxZLNsQ/nnz5kXr4DQACxcujLavU6dOjW5vpdKUTMhs8gJCdS+rzG3YNKvxYyHxQNhn3Cft2rULyrEJzKZj4Ot//etfXn799deDchxaWknkTTtgzYc8b/v16xfc43GcMhOzaSOWvRuIj51U2DP3GZspbf2VappsSVKhwy+99JKXr7nmGi+/9tprQTmej9/61re8PHfu3KDc0qVLvcynAHz5y18Oyl144YVePvLII72c6i+bFoHNtnySAJvDgOowgfH84Hlp54o1ezGTJk3y8v/8z/942ZrAGE4hYdO57L777l5++OGHvfzKK68E5XiNPPzww738wx/+MCjHGdqbmpoglbYmhjRAQgghhCgc2gAJIYQQonA0mwmMVWT33nuvl61n9l577eVlNgHZcpwNks1hQKj+ZhV5LLKkMaTqY7U9m1A4ogEIswLbaBVWF7Pavm3btk1sceXTFFODPeyS6+D+zxslYvuSxxSbTKzpkU0Eti+5z7hfWSUMVK4JLEXqvbI50kaicDQHzxH7/mMZfq05OXaI43bbbReU44jKWHvsZ1UD9v3GzPBN/V4TJ0708m233Rbce/TRR73Mrgx9+/YNyvH84Ygd2yccEcvze+bMmUG5008/3ctshrERtWzeZJMMEJrA2JRn56aNJCoH9WM/dWArY83/bBJis5c1N7HrxdFHHx3cu+6667x83333efnSSy8NyvE1m6/sod4nnXSSl3/xi194+aKLLgrK8bU12TU3ebNdM9IACSGEEKJwaAMkhBBCiMKhDZAQQggh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eOCB0Z4xY0a0Z8+enbT74he/GO2DDjoo2n379s35FsCyZWldPl5IqsXMXmnzm6qgXubmaaedFu3XX19emcL/CPC1e+KJJ6J9yinpVm7Tpk2L9tChQ6Ptx33MmDHobJphborl1GJuVjuWRclIHfEP8ZkzZ0Z7ww03jHafPn3adT7+hwk/XG200UbtOh/jr0V7vn+1YykJTAghhBCloz78VQCWLk2LSbIrjV1sAPAv//Iv0b7iiiuiPXDgwKQdP6Wus8460f7b3/6WtJs0aVK0v//970f7wgsvzO0vP6X6J9aOkOIajalTp0ab/7UBpOPg/8XB3hw+h/8X/oIFywt1b7XVVtH20taECROi/dprr0WbpRkA2HzzzaN9+umnR9uP5TXXXBNtlluB1CPUHm9QM+Alzblz50abpeoBAwYk7djTyuP+yivpP9x43Hle9ezZs30dFlWTJ0+zRxdI5zDLnl5eGTx4cLQPOOCA3M/l9b4sa2m1Xg4OBfDrLL9+//33k2M8Ftdee220vVeb10Ve09ibC6Te9auuuiq3HXvUt9hii2hvu23+FmKdGXpSjrtLCCGEEILQA5AQQgghSocegIQQQghROuomBqgofY6zvgDgggsuiDbrmU8++WTuOVlL9vEgX/7yl6O9ww47RHv8+PFJuz333DParFN6zbLeUulrBevRnM3lY7FYj+7fv39ybK+99or2ww8/HO2NN944abfbbrtFm8d18eLFuf3jVPftttsuObbjjjtGe9ddd432008/nbT7yU9+Eu1f/vKXybGyxv0wL730UvL6kUceiTaP7Zprrpm047HZY489ou0zOYcMGYLW4M/x51B8UPXwWsXxO0Aa93PllVe2agPA7373u2gPHz482h988EHSjmMqf//730f75ptvTtqVJe6HKYp7mjhxYrT5N46zufxrn0XLazJnTHI8LQC88cYb0eYYPo4NAoDHHnss2u+99160fXmKt99+O9oPPfRQqzYAHHXUUbl9ryXlu9OEEEIIUXr0ACSEEEKI0lETCaw9aYw+/ZVd3A8++GByjN1so0ePjjan1gLAiy++GG2WonbZZZek3c477xztp556Kto+JZqlM3YJ8vuBNOWwI4o61SuLFi2KNrstvRuUr4FPkzzuuOOizTKaLx7GkklRwUt223LaJafEA8Crr74abXbTevmEv6NYkeeeey55PWLEiGhzqitX7wbSObLuuutG25c1YLmTqz370hgsxUkCq56iat133HFHtP/4xz9G26df58EV1gHg17/+dbTPOOOMaHtJjYtpcnmU9lYZboSQBP6d5NACIP1t5N8u/9viJUeG17hevZYXSOYxBqovBMy/rfweX5Gdfws4Jd5/R5b5Dj/88NzP7WjkARJCCCFE6dADkBBCCCFKR00ksCI345tvvhntyy67LNq+oixnjWyzzTbJMd57hCPQv/nNbybt/v3f/z3a++23X7RHjRqVtGM5hN3xXr7j/aS4eu3YsWNzP7deXa4dAbs+OSPKXze+pr7iN7tCzz777Gj7jKtHH3002uxa93Jbv379oj1y5MhoT5kyJWm36aabRvv555+Pts9W8lXDRYrPAuOKz1x93WcYMey699JW3ianfs8h71IXreNlkyKZg6vsf+c738ltx2NblBnJ68Lll18ebb9us1zD4+zXDv6sonW20dbgZ555JnnN2V382+fXWZa2evTokRzj30mu/jx9+vSkHc9Znpf8dyCdp5tttlm0OYsMSDOA+Tfey9Tz58+PNleZBlb8/e9I5AESQgghROnQA5AQQgghSocegIQQQghROjo9BogrgLLWyzoikOqUPr2d4ZRoHz9w0EEHRZt3EPfpghz3wRorx64AaTwCVyp++eWXk3Z33nlntA877LDcvjc6S5YsafXvXpvm+8FryRw/wON85plnJu24SjTvLs/jCqTxQRxv5seSNXG+H3j8gTSt3qdy+93hy4gvX8HzkUsX+LnJ48EpsByPBaQVu4tSov3O441Oy/Xq6KrIRWszp6kD6RzhavkejsXhGCPf97zyKL7qO8f/cdV/P+b8Wc1UboSvOwD06dMn2rymcRwjkMY5cgV7ALj66qujzSVLTjrppKTd/vvvH22OxbnooouSdhdffHG077nnnmjff//9STteA3jd9jGBvG7zc0GtkQdICCGEEKVDD0BCCCGEKB013wzVp6dyuhu74ljy8q99ajK7Utn252CJht1vnqFDh0abXXGTJk1K2rHbnmUTdlECaVp9M8NyEY+Ddz9zqrpPu2XZi1MmfcVo3sCPXe7elcr94PNxiiiQVjDmPvj7hMeWXb0AcPzxx6PseJmDU135GLvCgXSuDho0KNp+rvMY8vn85xal2TciLd+vSNrha+ivh08Zb8FLhSxZ3HTTTckxrsrNVdp5Lrb22XnkyVInnnhi8vrggw+ONs/1888/P2nH18ZLrPw6b1PseoLlKx9awGPG18OXguBq917K57HlXQy4bAWQ/v7x77OvpM/hILxJ+I033pi0O++886Kdl4oPpNK5JDAhhBBCiBqiByAhhBBClI6aS2A+S4Rd5Cwp+Yqv7CLz7lyWVNjV6d27fE52ffrqwZzpwxKNz1ji87Pts4NY9vMZbEWVV+sdnz3HLnJ2zXr3a951A9Kx5Wvl27FbuEgKyds801dG5THj+4ElF3++v/zlL8kxSWArjhO7r4uytvg1u9o5ywVI7zFeL7zklSf5NCot8o6XwPLw8lK1WXEPPPBAtL30MHjw4Gh72YvhtbqoEnTepqQcFgGk2ZVF4QRF60A1fQWK+9uZ8G8GbxoKpOvpnDlzou03m+WMWN5kGkglTD7HAQcckLTj0AOee37TVB6zLbfcMtr+957XWT7GG1X7z+rMDD55gIQQQghROvQAJIQQQojSoQcgIYQQQpSOmscA+d20WXNl3c9rh6wrcjsg1QhZV/ZxABxnwNqv18c5PY+1WL9jLcfvcKyIr9zJ/fPxMI0cA+R3+s3T3b3OXlSCgON+ePx8Wqs/Z147Pge/h2PP/DHW0v39yveAjw+qNvahmak29sLPubXXXjvaXJLghRdeSNodccQRrb7HVw/26fONTssaUhQPkVeBGUgras+ePTvaPp2Zyzzsu+++uee/8MILo80xJEX4tY/j+Li/vNs5AOy8887R5nggX9141113jbYvc7H11ltHm2MB63We5qW6A+maxHGp/neR19KddtopOcbxczx3/Jq+cOHCaPO999BDDyXtDj/88GhzKr1fj3k+czXpsWPHJu24Hz5e8K9//Wu0/T26ssgDJIQQQojSoQcgIYQQQpSOTk+DZ7caywvexcaVIb27myUnPh+/x8PtiqQyds16tzq74F988cVoe7cfu3R9VU9fEbeR4HIBQL6c51OU2VXr3eJczZTdwEXSCktP/tozfD7fV35fXkVrIHU5+7G84ooron3WWWfl9qOZ8Sm7ixcvjvbAgQOj7ecSp1xfeuml0fZpubNmzYo2u7979+6dtCua+41IyzpUJIHxpsuTJ09OjrHUxeuWl+v59T777JMc45RolpD9BsS8phVVVef5w2vwvHnzkna8frI0MmHC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Dfz9wOsC2/7+ytts1n9HHnMePz/mfH/5eZsne+Vt3FpP+DmQl3Lu2xVtXpr3O+nHnO8Hfk97++THLI9qN4DtaOQBEkIIIUTp0AOQEEIIIUpHl0pgZ599drS/973vJce42u///u//JsfYLcouO18hmiUQdqMVRapz1WmfIfCHP/wh2py54DeVbFa8W5Vd1RtttFG0r7322qQdu8+9ZMKbFu66667R3mqrrZJ2U6dOjfaMGTOi7eVMzvbKq/ANpPcNfw+/WSK79H116nrFu4xZKuE54iUglgq4grLPKqs2O4Svq8/w4zlcVI04L+PPyzB5c9rfH3z/+U04uY95UkBXw1IP276asmhOap2RyFJU0e9ktZsWexm03pAHSAghhBClQw9AQgghhCgdegASQgghROno0hgg1hjzdngHVowL4NgCjkHw7Tj2oT07TnMVUt/HQYMG5fa3WfHVVjmGglPTf/jDHybtdthhh2hzqjsAjB49OtqTJk2K9j333JO0+6d/+qdo87Xn1G0g1abffvvtaPvUfNamOQ5p4sSJSTu+B6qtgNzV+PuZx413yebq3UAaA8M7d99///1JO55zRemx3M7HAvBrHjM/h/l8/D187FFeGq2POeN7x481x/pwP+opBkg0J3mVmtsCr08dXbXeryl587yzq6avLPIACSGEEKJ06AFICCGEEKWjSyWwooqUjHef52365s+Rt/FjkZuuSFKr5j2t9aNZ8N+LNyfkTUNvvvnmpB1XqfXp0HnVtbkSMQA88sgjrb7HV4LmSt6cNu1lDP4uXHX61FNPTdpxuna1lYO7Gl8VlyUmdo37Cua9evWKNkuGRanu/hh/Fpce8OPEc5PP4fvOx9jFX1SNmPC+LOkAAAq+SURBVMfa37OcLn7vvffm9r1RxlqUFy+VcZVrL/0yRWUs8ualXz+L1oC8z6pH6rt3QgghhBA1QA9AQgghhCgdegASQgghROno0higavFbTeTtaO13fuYYHtb3fQxQkYZZDfWuc3YUPn5nyy23bNU+7bTTknZ33nln7jl79uwZbS4z8PrrryftOHaF09aLdoFmHdy3Y6171KhRrb4HAF599dVob7755jnfor7YdNNNk9ccz1O0xQNff46p8fFYPH98+Qo+J8cA8RYlHm5X1Cdm/fXXr6qdn5u83QpvbePh+4Xj24TobPLS4v3vFsfI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\n",
      "text/plain": [
       "<Figure size 720x720 with 25 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,10))\n",
    "for i in range(25):\n",
    "    plt.subplot(5,5,i+1)\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])\n",
    "    plt.grid(False)\n",
    "    plt.imshow(x1[i], cmap=plt.cm.binary)\n",
    "    plt.xlabel(fashion_classes[y1[i]])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据增强\n",
    "深层神经网络一般都需要大量的训练数据才能获得比较理想的结果。在数据量有限的情况下，可以通过数据增强（Data Augmentation）来增加训练样本的多样性， 提高模型鲁棒性，避免过拟合.在计算机视觉中，典型的数据增强方法有翻转（Flip），旋转（Rotat ），缩放（Scale），随机裁剪或补零（Random Crop or Pad），色彩抖动（Color jittering），加噪声（Noise）等。\n",
    "本案例进行了旋转、反转和填充模式的增强。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "#定义用于图像增强的函数\n",
    "datagen = ImageDataGenerator(\n",
    "    rotation_range=10,        #旋转角度\n",
    "#    width_shift_range=0.2,   #水平偏移\n",
    "#    height_shift_range=0.2,  #垂直偏移\n",
    "#    shear_range=0.2,         #随机错切变换的角度\n",
    "#    zoom_range=0.2,          #随机缩放的范围\n",
    "    horizontal_flip=True,    #随机将一半图像水平翻转\n",
    "    fill_mode='nearest'      #随机将一半图像水平翻转\n",
    ")\n",
    "#image 原始图像\n",
    "#nb_augmentation 增加的数量\n",
    "#images 初始化后的图像\n",
    "\n",
    "def image_augmentation(image, nb_of_augmentation):\n",
    "    images = []\n",
    "    image = image.reshape(1,img_height,img_width,channels)\n",
    "    i = 0\n",
    "    for x_batch in datagen.flow(image,batch_size=1):\n",
    "        images.append(x_batch)\n",
    "        i += 1\n",
    "        if i >= nb_of_augmentation:\n",
    "            break\n",
    "    return images"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据预处理\n",
    "原始图像处理:\n",
    "将像素缩放为0.0-1.0之间\n",
    "添加增强的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "\n",
    "#targets 目标\n",
    "#use_sugmentation 进行数据增强则设置为True\n",
    "#nb_of_augmentation 图像增强设置的数量\n",
    "\n",
    "def preprocess_data(images, targets, use_augmentation=False, nb_of_augmentation=1):\n",
    "    \n",
    "    X = []\n",
    "    y = []\n",
    "    for x_, y_ in zip(images, targets):\n",
    "        #像素缩放\n",
    "        x_ = x_ / 255.0\n",
    "        #数据增强\n",
    "        if use_augmentation:\n",
    "            argu_img= image_augmentation(x_, nb_of_augmentation)\n",
    "            for a in argu_img:\n",
    "                X.append(a.reshape(img_height, img_width, channels))\n",
    "                y.append(y_)\n",
    "                \n",
    "        X.append(x_)\n",
    "        y.append(y_)\n",
    "    return np.array(X),tf.keras.utils.to_categorical(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 利用上面定义的函数进行数据的预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train_shaped, y_train_shaped = preprocess_data(\n",
    "    x_train, y_train,\n",
    "    use_augmentation = True,\n",
    "    nb_of_augmentation = nb_augmentation\n",
    ")\n",
    "X_test_shaped, y_test_shaped = preprocess_data(x2,y2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型定义"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "batch_normalization (BatchNo (None, 28, 28, 1)         4         \n",
      "_________________________________________________________________\n",
      "conv2d (Conv2D)              (None, 28, 28, 64)        1088      \n",
      "_________________________________________________________________\n",
      "max_pooling2d (MaxPooling2D) (None, 14, 14, 64)        0         \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 14, 14, 64)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_1 (Conv2D)            (None, 11, 11, 64)        65600     \n",
      "_________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64)          0         \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 5, 5, 64)          0         \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 1600)              0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 256)               409856    \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 256)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 64)                16448     \n",
      "_________________________________________________________________\n",
      "batch_normalization_1 (Batch (None, 64)                256       \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                650       \n",
      "=================================================================\n",
      "Total params: 493,902\n",
      "Trainable params: 493,772\n",
      "Non-trainable params: 130\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "def create_model():\n",
    "    #创建简单序贯模型\n",
    "    #使用keras的squential搭建神经网络模型时使用add进行一层一层的搭建\n",
    "    cnn = tf.keras.Sequential()\n",
    "    #添加新入层\n",
    "    cnn.add(tf.keras.layers.InputLayer(input_shape=(img_height,img_width,channels)))\n",
    "    # BatchNormaLization(BN)可以防止梯度爆炸或猕散、可以提高训练时模型对于不同超参（学习率、初始化)的鲁棒性\n",
    "    #可以让大部分的激活N娄育总够远离其饱和区域\n",
    "    cnn.add(tf.keras.layers.BatchNormalization())\n",
    "    #卷积层和池化层\n",
    "    cnn.add(tf.keras.layers.Convolution2D(64,(4,4),padding= 'same', activation= 'relu'))\n",
    "    cnn.add(tf.keras.layers.MaxPooling2D(pool_size=(2,2)))\n",
    "    #Dropout\n",
    "    #是种防上过以合的手段\n",
    "    cnn.add(tf.keras.layers.Dropout(0.1))#卷积层利和池化层\n",
    "    cnn.add(tf.keras.layers.Convolution2D(64,(4,4),activation='relu'))\n",
    "    cnn.add(tf.keras.layers.MaxPooling2D(pool_size=(2,2)))\n",
    "    # Dropout\n",
    "    cnn.add(tf.keras.layers.Dropout(0.3))\n",
    "    #维特征向量转换维维特征向量\n",
    "    cnn.add(tf.keras.layers.Flatten())\n",
    "    #全连接层                                \n",
    "    #激活擞采用relu\n",
    "    cnn.add(tf.keras.layers.Dense(256,activation='relu'))\n",
    "    #Dropout\n",
    "    cnn.add(tf.keras.layers.Dropout(0.5))\n",
    "    #全连接层\n",
    "    cnn.add(tf.keras.layers.Dense(64,activation='relu'))\n",
    "    #Normalization\n",
    "    cnn.add(tf.keras.layers.BatchNormalization())\n",
    "    #激活国数采用softmax\n",
    "    #softmax被用于多分类问题\n",
    "    cnn.add(tf.keras.layers.Dense(num_classes, activation='softmax' ))\n",
    "    #相当于一个汇总，损失函数采用交叉嫡，优化器选择adam，评估指标选用准确率\n",
    "    cnn.compile(loss='categorical_crossentropy',optimizer=tf.keras.optimizers.Adam(),metrics=['accuracy'])\n",
    "    return cnn\n",
    "create_model().summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练执行\n",
    "上面的函数定义了模型的结构，下面使用定义的结构来进行模型的训练。使用fit函数来进行模型的训练。\n",
    "首先需要划分训练集和测试集，使用sklearn的train_test_split函数来进行数据的划分，划分比例为5：1训练集和测试集划分完成，则进行模型的训练，并将每个iter的最佳模型保存为hdf5格式的checkpoint，以便后期模型的调用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iteration: 0\n",
      "Epoch 1/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.5924 - accuracy: 0.7910\n",
      "Epoch 00001: val_loss improved from inf to 0.49342, saving model to fashion_mnist-0.hdf5\n",
      "288/288 [==============================] - 82s 285ms/step - loss: 0.5924 - accuracy: 0.7910 - val_loss: 0.4934 - val_accuracy: 0.8702\n",
      "Epoch 2/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.3599 - accuracy: 0.8683\n",
      "Epoch 00002: val_loss improved from 0.49342 to 0.28908, saving model to fashion_mnist-0.hdf5\n",
      "288/288 [==============================] - 82s 286ms/step - loss: 0.3599 - accuracy: 0.8683 - val_loss: 0.2891 - val_accuracy: 0.8976\n",
      "iteration: 1\n",
      "Epoch 1/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.6114 - accuracy: 0.7820\n",
      "Epoch 00001: val_loss improved from inf to 0.56039, saving model to fashion_mnist-1.hdf5\n",
      "288/288 [==============================] - 83s 287ms/step - loss: 0.6114 - accuracy: 0.7820 - val_loss: 0.5604 - val_accuracy: 0.8719\n",
      "Epoch 2/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.3651 - accuracy: 0.8680\n",
      "Epoch 00002: val_loss improved from 0.56039 to 0.27819, saving model to fashion_mnist-1.hdf5\n",
      "288/288 [==============================] - 82s 286ms/step - loss: 0.3651 - accuracy: 0.8680 - val_loss: 0.2782 - val_accuracy: 0.8980\n",
      "iteration: 2\n",
      "Epoch 1/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.5879 - accuracy: 0.7895\n",
      "Epoch 00001: val_loss improved from inf to 0.50765, saving model to fashion_mnist-2.hdf5\n",
      "288/288 [==============================] - 82s 286ms/step - loss: 0.5879 - accuracy: 0.7895 - val_loss: 0.5076 - val_accuracy: 0.8521\n",
      "Epoch 2/2\n",
      "288/288 [==============================] - ETA: 0s - loss: 0.3646 - accuracy: 0.8676\n",
      "Epoch 00002: val_loss improved from 0.50765 to 0.27536, saving model to fashion_mnist-2.hdf5\n",
      "288/288 [==============================] - 82s 283ms/step - loss: 0.3646 - accuracy: 0.8676 - val_loss: 0.2754 - val_accuracy: 0.8975\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "histories = []\n",
    "for i in range(0,iterations):\n",
    "    print('iteration: %i' %i)\n",
    "    filepath = \"fashion_mnist-%i.hdf5\" %i\n",
    "    X_train_, x_val_, y_train_, y_val_ = train_test_split(X_train_shaped, y_train_shaped,test_size=0.2, random_state=42)\n",
    "    cnn = create_model()\n",
    "    history = cnn.fit(X_train_,y_train_,\n",
    "                      batch_size=batch_size,\n",
    "                      epochs=2,#num epochs,\n",
    "                      verbose=1,\n",
    "                      validation_data=(x_val_,y_val_),\n",
    "                      callbacks=[tf.keras.callbacks.ModelCheckpoint(filepath,monitor= 'val_loss',verbose=1,save_best_only=True)])\n",
    "    histories.append(history.history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "'Sequential' object has no attribute 'load_wights'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-19-d2a1c5e46764>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mRUN\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcreate_model\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mmodel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload_wights\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"models/fashion_mnist-%i.hdf5\"\u001b[0m\u001b[1;33m%\u001b[0m \u001b[0mRUN\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mAttributeError\u001b[0m: 'Sequential' object has no attribute 'load_wights'"
     ]
    }
   ],
   "source": [
    "RUN = 0\n",
    "model = create_model()\n",
    "model.load_wights(\"models/fashion_mnist-%i.hdf5\"% RUN)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
